home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / alsa / asoundef.h < prev    next >
C/C++ Source or Header  |  2006-01-09  |  13KB  |  254 lines

  1. /**
  2.  * \file include/asoundef.h
  3.  * \brief Application interface library for the ALSA driver
  4.  * \author Jaroslav Kysela <perex@suse.cz>
  5.  * \author Abramo Bagnara <abramo@alsa-project.org>
  6.  * \author Takashi Iwai <tiwai@suse.de>
  7.  * \date 1998-2001
  8.  *
  9.  * Definitions of constants for the ALSA driver
  10.  */
  11. /*
  12.  *   This library is free software; you can redistribute it and/or modify
  13.  *   it under the terms of the GNU Lesser General Public License as
  14.  *   published by the Free Software Foundation; either version 2.1 of
  15.  *   the License, or (at your option) any later version.
  16.  *
  17.  *   This program is distributed in the hope that it will be useful,
  18.  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  19.  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  20.  *   GNU Lesser General Public License for more details.
  21.  *
  22.  *   You should have received a copy of the GNU Lesser General Public
  23.  *   License along with this library; if not, write to the Free Software
  24.  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
  25.  *
  26.  */
  27.  
  28. #ifndef __ALSA_ASOUNDEF_H
  29. #define __ALSA_ASOUNDEF_H
  30.  
  31. #ifdef __cplusplus
  32. extern "C" {
  33. #endif
  34.  
  35. /**
  36.  * \defgroup Digital_Audio_Interface Constants for Digital Audio Interfaces
  37.  * AES/IEC958 channel status bits.
  38.  * \{
  39.  */
  40.  
  41. #define IEC958_AES0_PROFESSIONAL    (1<<0)    /**< 0 = consumer, 1 = professional */
  42. #define IEC958_AES0_NONAUDIO        (1<<1)    /**< 0 = audio, 1 = non-audio */
  43. #define IEC958_AES0_PRO_EMPHASIS    (7<<2)    /**< mask - emphasis */
  44. #define IEC958_AES0_PRO_EMPHASIS_NOTID    (0<<2)    /**< emphasis not indicated */
  45. #define IEC958_AES0_PRO_EMPHASIS_NONE    (1<<2)    /**< no emphasis */
  46. #define IEC958_AES0_PRO_EMPHASIS_5015    (3<<2)    /**< 50/15us emphasis */
  47. #define IEC958_AES0_PRO_EMPHASIS_CCITT    (7<<2)    /**< CCITT J.17 emphasis */
  48. #define IEC958_AES0_PRO_FREQ_UNLOCKED    (1<<5)    /**< source sample frequency: 0 = locked, 1 = unlocked */
  49. #define IEC958_AES0_PRO_FS        (3<<6)    /**< mask - sample frequency */
  50. #define IEC958_AES0_PRO_FS_NOTID    (0<<6)    /**< fs not indicated */
  51. #define IEC958_AES0_PRO_FS_44100    (1<<6)    /**< 44.1kHz */
  52. #define IEC958_AES0_PRO_FS_48000    (2<<6)    /**< 48kHz */
  53. #define IEC958_AES0_PRO_FS_32000    (3<<6)    /**< 32kHz */
  54. #define IEC958_AES0_CON_NOT_COPYRIGHT    (1<<2)    /**< 0 = copyright, 1 = not copyright */
  55. #define IEC958_AES0_CON_EMPHASIS    (7<<3)    /**< mask - emphasis */
  56. #define IEC958_AES0_CON_EMPHASIS_NONE    (0<<3)    /**< no emphasis */
  57. #define IEC958_AES0_CON_EMPHASIS_5015    (1<<3)    /**< 50/15us emphasis */
  58. #define IEC958_AES0_CON_MODE        (3<<6)    /**< mask - mode */
  59. #define IEC958_AES1_PRO_MODE        (15<<0)    /**< mask - channel mode */
  60. #define IEC958_AES1_PRO_MODE_NOTID    (0<<0)    /**< mode not indicated */
  61. #define IEC958_AES1_PRO_MODE_STEREOPHONIC (2<<0) /**< stereophonic - ch A is left */
  62. #define IEC958_AES1_PRO_MODE_SINGLE    (4<<0)    /**< single channel */
  63. #define IEC958_AES1_PRO_MODE_TWO    (8<<0)    /**< two channels */
  64. #define IEC958_AES1_PRO_MODE_PRIMARY    (12<<0)    /**< primary/secondary */
  65. #define IEC958_AES1_PRO_MODE_BYTE3    (15<<0)    /**< vector to byte 3 */
  66. #define IEC958_AES1_PRO_USERBITS    (15<<4)    /**< mask - user bits */
  67. #define IEC958_AES1_PRO_USERBITS_NOTID    (0<<4)    /**< user bits not indicated */
  68. #define IEC958_AES1_PRO_USERBITS_192    (8<<4)    /**< 192-bit structure */
  69. #define IEC958_AES1_PRO_USERBITS_UDEF    (12<<4)    /**< user defined application */
  70. #define IEC958_AES1_CON_CATEGORY    0x7f    /**< consumer category */
  71. #define IEC958_AES1_CON_GENERAL        0x00    /**< general category */
  72. #define IEC958_AES1_CON_EXPERIMENTAL    0x40    /**< experimental category */
  73. #define IEC958_AES1_CON_SOLIDMEM_MASK    0x0f    /**< ??? */
  74. #define IEC958_AES1_CON_SOLIDMEM_ID    0x08    /**< ??? */
  75. #define IEC958_AES1_CON_BROADCAST1_MASK 0x07    /**< ??? */
  76. #define IEC958_AES1_CON_BROADCAST1_ID    0x04    /**< ??? */
  77. #define IEC958_AES1_CON_DIGDIGCONV_MASK 0x07    /**< digital<->digital converter mask */
  78. #define IEC958_AES1_CON_DIGDIGCONV_ID    0x02    /**< digital<->digital converter id */
  79. #define IEC958_AES1_CON_ADC_COPYRIGHT_MASK 0x1f    /**< ADC Copyright mask */
  80. #define IEC958_AES1_CON_ADC_COPYRIGHT_ID 0x06    /**< ADC Copyright ID */
  81. #define IEC958_AES1_CON_ADC_MASK    0x1f    /**< ADC Mask */
  82. #define IEC958_AES1_CON_ADC_ID        0x16    /**< ADC ID */
  83. #define IEC958_AES1_CON_BROADCAST2_MASK 0x0f    /**< Broadcast mask */
  84. #define IEC958_AES1_CON_BROADCAST2_ID    0x0e    /**< Broadcast ID */
  85. #define IEC958_AES1_CON_LASEROPT_MASK    0x07    /**< Laser-optical mask */
  86. #define IEC958_AES1_CON_LASEROPT_ID    0x01    /**< Laser-optical ID */
  87. #define IEC958_AES1_CON_MUSICAL_MASK    0x07    /**< Musical device mask */
  88. #define IEC958_AES1_CON_MUSICAL_ID    0x05    /**< Musical device ID */
  89. #define IEC958_AES1_CON_MAGNETIC_MASK    0x07    /**< Magnetic device mask */
  90. #define IEC958_AES1_CON_MAGNETIC_ID    0x03    /**< Magnetic device ID */
  91. #define IEC958_AES1_CON_IEC908_CD    (IEC958_AES1_CON_LASEROPT_ID|0x00)    /**< IEC958 CD compatible device */
  92. #define IEC958_AES1_CON_NON_IEC908_CD    (IEC958_AES1_CON_LASEROPT_ID|0x08)    /**< non-IEC958 CD compatible device */
  93. #define IEC958_AES1_CON_PCM_CODER    (IEC958_AES1_CON_DIGDIGCONV_ID|0x00)    /**< PCM coder */
  94. #define IEC958_AES1_CON_SAMPLER        (IEC958_AES1_CON_DIGDIGCONV_ID|0x20)    /**< PCM sampler */
  95. #define IEC958_AES1_CON_MIXER        (IEC958_AES1_CON_DIGDIGCONV_ID|0x10)    /**< Mixer */
  96. #define IEC958_AES1_CON_RATE_CONVERTER    (IEC958_AES1_CON_DIGDIGCONV_ID|0x18)    /**< Rate converter */
  97. #define IEC958_AES1_CON_SYNTHESIZER    (IEC958_AES1_CON_MUSICAL_ID|0x00)    /**< Synthesizer */
  98. #define IEC958_AES1_CON_MICROPHONE    (IEC958_AES1_CON_MUSICAL_ID|0x08)    /**< Microphone */
  99. #define IEC958_AES1_CON_DAT        (IEC958_AES1_CON_MAGNETIC_ID|0x00)    /**< Digital Audio Tape */
  100. #define IEC958_AES1_CON_VCR        (IEC958_AES1_CON_MAGNETIC_ID|0x08)    /**< Video recorder */
  101. #define IEC958_AES1_CON_ORIGINAL    (1<<7)    /**< this bits depends on the category code */
  102. #define IEC958_AES2_PRO_SBITS        (7<<0)    /**< mask - sample bits */
  103. #define IEC958_AES2_PRO_SBITS_20    (2<<0)    /**< 20-bit - coordination */
  104. #define IEC958_AES2_PRO_SBITS_24    (4<<0)    /**< 24-bit - main audio */
  105. #define IEC958_AES2_PRO_SBITS_UDEF    (6<<0)    /**< user defined application */
  106. #define IEC958_AES2_PRO_WORDLEN        (7<<3)    /**< mask - source word length */
  107. #define IEC958_AES2_PRO_WORDLEN_NOTID    (0<<3)    /**< source word length not indicated */
  108. #define IEC958_AES2_PRO_WORDLEN_22_18    (2<<3)    /**< 22-bit or 18-bit */
  109. #define IEC958_AES2_PRO_WORDLEN_23_19    (4<<3)    /**< 23-bit or 19-bit */
  110. #define IEC958_AES2_PRO_WORDLEN_24_20    (5<<3)    /**< 24-bit or 20-bit */
  111. #define IEC958_AES2_PRO_WORDLEN_20_16    (6<<3)    /**< 20-bit or 16-bit */
  112. #define IEC958_AES2_CON_SOURCE        (15<<0)    /**< mask - source number */
  113. #define IEC958_AES2_CON_SOURCE_UNSPEC    (0<<0)    /**< source number unspecified */
  114. #define IEC958_AES2_CON_CHANNEL        (15<<4)    /**< mask - channel number */
  115. #define IEC958_AES2_CON_CHANNEL_UNSPEC    (0<<4)    /**< channel number unspecified */
  116. #define IEC958_AES3_CON_FS        (15<<0)    /**< mask - sample frequency */
  117. #define IEC958_AES3_CON_FS_44100    (0<<0)    /**< 44.1kHz */
  118. #define IEC958_AES3_CON_FS_48000    (2<<0)    /**< 48kHz */
  119. #define IEC958_AES3_CON_FS_32000    (3<<0)    /**< 32kHz */
  120. #define IEC958_AES3_CON_CLOCK        (3<<4)    /**< mask - clock accuracy */
  121. #define IEC958_AES3_CON_CLOCK_1000PPM    (0<<4)    /**< 1000 ppm */
  122. #define IEC958_AES3_CON_CLOCK_50PPM    (1<<4)    /**< 50 ppm */
  123. #define IEC958_AES3_CON_CLOCK_VARIABLE    (2<<4)    /**< variable pitch */
  124.  
  125. /** \} */
  126.  
  127. /**
  128.  * \defgroup MIDI_Interface Constants for MIDI v1.0
  129.  * Constants for MIDI v1.0.
  130.  * \{
  131.  */
  132.  
  133. #define MIDI_CHANNELS            16    /**< Number of channels per port/cable. */
  134. #define MIDI_GM_DRUM_CHANNEL        (10-1)    /**< Channel number for GM drums. */
  135.  
  136. /**
  137.  * \defgroup MIDI_Commands MIDI Commands
  138.  * MIDI command codes.
  139.  * \{
  140.  */
  141.  
  142. #define MIDI_CMD_NOTE_OFF        0x80    /**< note off */
  143. #define MIDI_CMD_NOTE_ON        0x90    /**< note on */
  144. #define MIDI_CMD_NOTE_PRESSURE        0xa0    /**< key pressure */
  145. #define MIDI_CMD_CONTROL        0xb0    /**< control change */
  146. #define MIDI_CMD_PGM_CHANGE        0xc0    /**< program change */
  147. #define MIDI_CMD_CHANNEL_PRESSURE    0xd0    /**< channel pressure */
  148. #define MIDI_CMD_BENDER            0xe0    /**< pitch bender */
  149.  
  150. #define MIDI_CMD_COMMON_SYSEX        0xf0    /**< sysex (system exclusive) begin */
  151. #define MIDI_CMD_COMMON_MTC_QUARTER    0xf1    /**< MTC quarter frame */
  152. #define MIDI_CMD_COMMON_SONG_POS    0xf2    /**< song position */
  153. #define MIDI_CMD_COMMON_SONG_SELECT    0xf3    /**< song select */
  154. #define MIDI_CMD_COMMON_TUNE_REQUEST    0xf6    /**< tune request */
  155. #define MIDI_CMD_COMMON_SYSEX_END    0xf7    /**< end of sysex */
  156. #define MIDI_CMD_COMMON_CLOCK        0xf8    /**< clock */
  157. #define MIDI_CMD_COMMON_START        0xfa    /**< start */
  158. #define MIDI_CMD_COMMON_CONTINUE    0xfb    /**< continue */
  159. #define MIDI_CMD_COMMON_STOP        0xfc    /**< stop */
  160. #define MIDI_CMD_COMMON_SENSING        0xfe    /**< active sensing */
  161. #define MIDI_CMD_COMMON_RESET        0xff    /**< reset */
  162.  
  163. /** \} */
  164.  
  165. /**
  166.  * \defgroup MIDI_Controllers MIDI Controllers
  167.  * MIDI controller numbers.
  168.  * \{
  169.  */
  170.  
  171. #define MIDI_CTL_MSB_BANK        0x00    /**< Bank selection */
  172. #define MIDI_CTL_MSB_MODWHEEL             0x01    /**< Modulation */
  173. #define MIDI_CTL_MSB_BREATH               0x02    /**< Breath */
  174. #define MIDI_CTL_MSB_FOOT                 0x04    /**< Foot */
  175. #define MIDI_CTL_MSB_PORTAMENTO_TIME     0x05    /**< Portamento time */
  176. #define MIDI_CTL_MSB_DATA_ENTRY        0x06    /**< Data entry */
  177. #define MIDI_CTL_MSB_MAIN_VOLUME          0x07    /**< Main volume */
  178. #define MIDI_CTL_MSB_BALANCE              0x08    /**< Balance */
  179. #define MIDI_CTL_MSB_PAN                  0x0a    /**< Panpot */
  180. #define MIDI_CTL_MSB_EXPRESSION           0x0b    /**< Expression */
  181. #define MIDI_CTL_MSB_EFFECT1        0x0c    /**< Effect1 */
  182. #define MIDI_CTL_MSB_EFFECT2        0x0d    /**< Effect2 */
  183. #define MIDI_CTL_MSB_GENERAL_PURPOSE1     0x10    /**< General purpose 1 */
  184. #define MIDI_CTL_MSB_GENERAL_PURPOSE2     0x11    /**< General purpose 2 */
  185. #define MIDI_CTL_MSB_GENERAL_PURPOSE3     0x12    /**< General purpose 3 */
  186. #define MIDI_CTL_MSB_GENERAL_PURPOSE4     0x13    /**< General purpose 4 */
  187. #define MIDI_CTL_LSB_BANK        0x20    /**< Bank selection */
  188. #define MIDI_CTL_LSB_MODWHEEL            0x21    /**< Modulation */
  189. #define MIDI_CTL_LSB_BREATH               0x22    /**< Breath */
  190. #define MIDI_CTL_LSB_FOOT                 0x24    /**< Foot */
  191. #define MIDI_CTL_LSB_PORTAMENTO_TIME     0x25    /**< Portamento time */
  192. #define MIDI_CTL_LSB_DATA_ENTRY        0x26    /**< Data entry */
  193. #define MIDI_CTL_LSB_MAIN_VOLUME          0x27    /**< Main volume */
  194. #define MIDI_CTL_LSB_BALANCE              0x28    /**< Balance */
  195. #define MIDI_CTL_LSB_PAN                  0x2a    /**< Panpot */
  196. #define MIDI_CTL_LSB_EXPRESSION           0x2b    /**< Expression */
  197. #define MIDI_CTL_LSB_EFFECT1        0x2c    /**< Effect1 */
  198. #define MIDI_CTL_LSB_EFFECT2        0x2d    /**< Effect2 */
  199. #define MIDI_CTL_LSB_GENERAL_PURPOSE1     0x30    /**< General purpose 1 */
  200. #define MIDI_CTL_LSB_GENERAL_PURPOSE2     0x31    /**< General purpose 2 */
  201. #define MIDI_CTL_LSB_GENERAL_PURPOSE3     0x32    /**< General purpose 3 */
  202. #define MIDI_CTL_LSB_GENERAL_PURPOSE4     0x33    /**< General purpose 4 */
  203. #define MIDI_CTL_SUSTAIN                  0x40    /**< Sustain pedal */
  204. #define MIDI_CTL_PORTAMENTO               0x41    /**< Portamento */
  205. #define MIDI_CTL_SOSTENUTO                0x42    /**< Sostenuto */
  206. #define MIDI_CTL_SUSTENUTO                0x42    /**< Sostenuto (a typo in the older version) */
  207. #define MIDI_CTL_SOFT_PEDAL               0x43    /**< Soft pedal */
  208. #define MIDI_CTL_LEGATO_FOOTSWITCH    0x44    /**< Legato foot switch */
  209. #define MIDI_CTL_HOLD2                    0x45    /**< Hold2 */
  210. #define MIDI_CTL_SC1_SOUND_VARIATION    0x46    /**< SC1 Sound Variation */
  211. #define MIDI_CTL_SC2_TIMBRE        0x47    /**< SC2 Timbre */
  212. #define MIDI_CTL_SC3_RELEASE_TIME    0x48    /**< SC3 Release Time */
  213. #define MIDI_CTL_SC4_ATTACK_TIME    0x49    /**< SC4 Attack Time */
  214. #define MIDI_CTL_SC5_BRIGHTNESS        0x4a    /**< SC5 Brightness */
  215. #define MIDI_CTL_SC6            0x4b    /**< SC6 */
  216. #define MIDI_CTL_SC7            0x4c    /**< SC7 */
  217. #define MIDI_CTL_SC8            0x4d    /**< SC8 */
  218. #define MIDI_CTL_SC9            0x4e    /**< SC9 */
  219. #define MIDI_CTL_SC10            0x4f    /**< SC10 */
  220. #define MIDI_CTL_GENERAL_PURPOSE5         0x50    /**< General purpose 5 */
  221. #define MIDI_CTL_GENERAL_PURPOSE6         0x51    /**< General purpose 6 */
  222. #define MIDI_CTL_GENERAL_PURPOSE7         0x52    /**< General purpose 7 */
  223. #define MIDI_CTL_GENERAL_PURPOSE8         0x53    /**< General purpose 8 */
  224. #define MIDI_CTL_PORTAMENTO_CONTROL    0x54    /**< Portamento control */
  225. #define MIDI_CTL_E1_REVERB_DEPTH    0x5b    /**< E1 Reverb Depth */
  226. #define MIDI_CTL_E2_TREMOLO_DEPTH    0x5c    /**< E2 Tremolo Depth */
  227. #define MIDI_CTL_E3_CHORUS_DEPTH    0x5d    /**< E3 Chorus Depth */
  228. #define MIDI_CTL_E4_DETUNE_DEPTH    0x5e    /**< E4 Detune Depth */
  229. #define MIDI_CTL_E5_PHASER_DEPTH    0x5f    /**< E5 Phaser Depth */
  230. #define MIDI_CTL_DATA_INCREMENT           0x60    /**< Data Increment */
  231. #define MIDI_CTL_DATA_DECREMENT           0x61    /**< Data Decrement */
  232. #define MIDI_CTL_NONREG_PARM_NUM_LSB      0x62    /**< Non-registered parameter number */
  233. #define MIDI_CTL_NONREG_PARM_NUM_MSB      0x63    /**< Non-registered parameter number */
  234. #define MIDI_CTL_REGIST_PARM_NUM_LSB      0x64    /**< Registered parameter number */
  235. #define MIDI_CTL_REGIST_PARM_NUM_MSB    0x65    /**< Registered parameter number */
  236. #define MIDI_CTL_ALL_SOUNDS_OFF        0x78    /**< All sounds off */
  237. #define MIDI_CTL_RESET_CONTROLLERS    0x79    /**< Reset Controllers */
  238. #define MIDI_CTL_LOCAL_CONTROL_SWITCH    0x7a    /**< Local control switch */
  239. #define MIDI_CTL_ALL_NOTES_OFF        0x7b    /**< All notes off */
  240. #define MIDI_CTL_OMNI_OFF        0x7c    /**< Omni off */
  241. #define MIDI_CTL_OMNI_ON        0x7d    /**< Omni on */
  242. #define MIDI_CTL_MONO1            0x7e    /**< Mono1 */
  243. #define MIDI_CTL_MONO2            0x7f    /**< Mono2 */
  244.  
  245. /** \} */
  246.  
  247. /** \} */
  248.  
  249. #ifdef __cplusplus
  250. }
  251. #endif
  252.  
  253. #endif /* __ALSA_ASOUNDEF_H */
  254.